package capitulo8.funcionarios;

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

public class Funcionario implements Comparable {

    private int matricula;
    private String nome;
    private double salario;

    public Funcionario(int matricula, String nome, double salario) {
        this.matricula = matricula;
        this.nome = nome;
        this.salario = salario;
    }

    public int getMatricula() {
        return matricula;
    }

    public String getNome() {
        return nome;
    }

    public double getSalario() {
        return salario;
    }

    @Override
    public int compareTo(Object o) {
        if (o instanceof Funcionario){
            Funcionario outro = (Funcionario) o;
            return this.nome.compareTo(outro.getNome());
        } 
        return 0;
    }
    
    public static void main(String[] args) {
        List<Funcionario> funcionariosBanco = new LinkedList<Funcionario>();
        funcionariosBanco.add(new Tesoureiro(1, "AAA", 1));
        funcionariosBanco.add(new Tesoureiro(1, "XXX", 1));
        funcionariosBanco.add(new Tesoureiro(1, "BBB", 1));
        funcionariosBanco.add(new Gerente(1, "ZZZ", 1, "54321"));
        
        Collections.sort(funcionariosBanco);
        
        for (Funcionario funcionario : funcionariosBanco)
            System.out.println(funcionario.nome);
    }
}